home *** CD-ROM | disk | FTP | other *** search
/ Wonky Flux Batch 2019 02 / Wonky_Flux_Batch_2019-02.zip / Wonky Flux Batch 2019-02 / 024 - Big U Macroworks.dsk / COMPILER.bas < prev    next >
BASIC Source File  |  2019-02-16  |  7KB  |  87 lines

  1. 3  ONERR  GOTO 10000
  2. 4  LOMEM: 24576: DIM FI$(50): HOME : PRINT  CHR$(4)"PR#3": PRINT : VTAB 12: HTAB 27: PRINT "Compiler Loading...": PRINT 
  3. 10 DS = 6:DN = 1
  4. 12 SD = 48700:AS =  PEEK(SD):AD =  PEEK(SD +1):S3 = 7936
  5. 14 D$ =  CHR$(4):Q$ =  CHR$(34):CL =  -868:CS =  -958: DIM D$(3),M$(2): DIM LI$(27):KR = 49168:BL = 48855:HE = 11904:CM = 8192:H = 9:V = 6:C = 25:C8 = 1403:AW$ = "AppleWorks"
  6. 15  POKE 48891, PEEK(116):A1 =  PEEK(1014):A2 =  PEEK(1015): FOR I = 0 TO 9: READ A: POKE 7808 +I,A: NEXT : DATA  104,168,104,166,223,154,72,152,72,96
  7. 20  PRINT D$"-MENUS"
  8. 30  PRINT D$"BLOAD COMPILER.CODE"
  9. 40  PRINT D$"PREFIX": INPUT PFX$:OP$ = "/": FOR I = 2 TO  LEN(PF$) -1: IF  MID$ (PF$,I,1) = "/"  THEN OP$ = PF$: GOTO 50
  10. 45  NEXT 
  11. 50 ITEMS = 1: DIM A$(IT): FOR I = 0 TO ITEMS: READ A$(I): NEXT : FOR I = 0 TO 2: READ M$(I): NEXT : FOR I = 0 TO 3: READ D$(I): NEXT :D$(1) = "Slot " + STR$(DS) +" Drive " + STR$(DN):UN$ = "Unable to "
  12. 60  VTAB 1: PRINT : VTAB 1: PRINT "MacroWorks";: CALL CL: HTAB 32: PRINT "  COMPILER MENU";: POKE C8,65: PRINT "Compiler.Menu": & RPT,223,79
  13. 80  VTAB 22: PRINT : & RPT,223,79: GOSUB 9950: & BOX,M$(0),4,3,11: FOR U = 1 TO 5: CALL CL: PRINT : NEXT 
  14. 110  & MENU,A$(0),IT,1,H,V +2,C
  15. 120 X =  PEEK(0):QO = 1: IF X < >IT +1  THEN 500
  16. 125  VTAB 23: PRINT : PRINT "Press  A  for Applesoft or  Esc  to continue";: CALL CL: INVERSE : IF QO = 0  THEN  HTAB 7: PRINT " A ";
  17. 126  IF QO = 1  THEN  HTAB 28: PRINT " Esc ";:
  18. 127  NORMAL : & KEY,23,24:X =  PEEK(0): IF X = 27  OR (X = 13  AND QO = 1)  THEN  GOSUB 9950: GOTO 110
  19. 129  IF X = 8  OR X = 21  THEN QO = 1 -QO: GOTO 125
  20. 130  IF   NOT (X = 65  OR X = 97  OR (X = 13  AND QO = 0))  THEN  & BEEP: GOTO 127
  21. 135  GOSUB 9800: HOME : PRINT  CHR$(21): PRINT : PRINT "TYPE "Q$"RUN"Q$" TO RESTART.": END 
  22. 500  ON X = 1 GOTO 6500: & BEEP: GOTO 110
  23. 6500  VTAB 1: HTAB 32: PRINT "  COMPILE MACROS";: CALL CL: POKE C8,61: PRINT "Escape: Main Menu"
  24. 6510 I = 2: GOSUB 9900: VTAB 9: PRINT : HTAB 16: PRINT "Where is the MACROS. file?": GOSUB 9000: IF X = 27  THEN 60
  25. 6520  GOSUB 9500: IF X = 27  THEN 6510
  26. 6530  IF CO = 0  THEN  & BEEP: VTAB 11: PRINT : HTAB 20: PRINT "No MACROS. files in  ": HTAB 20: PRINT PFX$: & KEY,25,24: GOTO 6510
  27. 6540  VTAB 20: PRINT D$"BLOAD"NA$",A$2A00,TAWP,B300"
  28. 6680 I = 2: GOSUB 9900: VTAB 7: PRINT : POKE 33,59: POKE 32,15: PRINT : PRINT "Compiling "NA$: CALL CM +2: POKE 33,80: POKE 32,0:X =  PEEK(CM +1):MA =  PEEK(224) +256 * PEEK(225): POKE MA,30
  29. 6686  VTAB 23: PRINT : PRINT "Press Return to continue";: CALL CL: & KEY,13,24: ON X = 0 GOTO 60: IF  PEEK(0) = 27  THEN 6510
  30. 6688  VTAB 1: HTAB 32: PRINT "  SAVE NEW MACROS";: CALL CL: POKE C8,57: PRINT "Escape: Compile Macros"
  31. 6710 I = 2: GOSUB 9200: GOSUB 9000: IF X = 27  THEN 6500
  32. 6715  PRINT D$"BLOAD MACRO.SYSTEM,TSYS,A"S3",L7":MF = ( PEEK(S3 +3) +256 * PEEK(S3 +4)) -8192
  33. 6720  VTAB 21: PRINT D$"BSAVE MACRO.SYSTEM,TSYS,A$2800,E"MA",B"MF
  34. 6900  VTAB 23: PRINT : PRINT "New macros installed; press Return or Esc";: CALL CL: & KEY,22,24: ON  PEEK(0) = 27 GOTO 6500: GOTO 6710
  35. 9000  PRINT D$"FRE":Y$ = PF$: GOSUB 9950: VTAB 10: PRINT : HTAB 16: PRINT "Select (1) when 'Current Directory' is correct.": PRINT : POKE C8,39: PRINT PFX$;: PRINT  SPC( 30 - LEN(PF$))
  36. 9030  & MENU,D$(0),3,1,15,13,25:X =  PEEK(0): IF X = 27  THEN  RETURN 
  37. 9040  ON X GOTO 9190,9180,9050,9170: & BEEP: GOTO 9030
  38. 9050  VTAB 14: PRINT : HTAB 24: INVERSE : PRINT " "DS" ";: NORMAL : PRINT : GOSUB 9975
  39. 9060  & KEY,32,24:X =  PEEK(0): IF X = 27  THEN  GOSUB 9950: GOTO 9030
  40. 9070  IF X = 10  THEN DS = DS -1: IF DS = 0  THEN DS = 7
  41. 9080  IF X = 11  THEN DS = DS +1: IF DS = 8  THEN DS = 1
  42. 9085  IF X >48  AND X <56  THEN DS = X -48:X = 13
  43. 9090  IF X = 13  OR X = 21  THEN D$(1) = "Slot " + STR$(DS) +" Drive " + STR$(DN): VTAB 14: PRINT : HTAB 20: PRINT D$(1)" ";: GOTO 9120
  44. 9100  IF X = 10  OR X = 11  THEN 9050
  45. 9110  & BEEP: GOTO 9060
  46. 9120  VTAB 14: PRINT : HTAB 32: INVERSE : PRINT " "DN" ";: NORMAL : PRINT 
  47. 9130  & KEY,32,24:X =  PEEK(0): IF X = 27  OR X = 8  THEN  VTAB 14: PRINT : HTAB 20: PRINT D$(1)" ";: GOTO 9050
  48. 9140  IF X = 10  OR X = 11  THEN DN = 3 -DN: GOTO 9120
  49. 9145  IF X >48  AND X <51  THEN DN = X -48:X = 13
  50. 9150  IF X = 13  THEN  GOSUB 9950:D$(1) = "Slot " + STR$(DS) +" Drive " + STR$(DN): VTAB 14: PRINT : HTAB 20: PRINT D$(1)" ";: GOTO 9180
  51. 9160  & BEEP: GOTO 9130
  52. 9170  VTAB 23: PRINT : PRINT "Type new pathname: /";: CALL CL: &  INPUT X$: ON X$ = "" GOTO 9000:PFX$ = "/" +X$ +"/": PRINT D$"PREFIX"PF$: GOTO 9000
  53. 9180  VTAB 22: PRINT D$"PREFIX,S"DS",D"DN: PRINT D$"PREFIX": INPUT PFX$: GOTO 9000
  54. 9190  RETURN 
  55. 9200  GOSUB 9900: VTAB 9: PRINT : HTAB 16: PRINT "Where is your Macro Master disk?": RETURN 
  56. 9500 I = 2: GOSUB 9900: VTAB 11: PRINT : HTAB 20: PRINT "Reading directory...":CO = 1
  57. 9510  VTAB 22: PRINT D$"OPEN"PFX$",TDIR": VTAB 22: PRINT D$"READ"PFX$: INPUT X$: INPUT X$
  58. 9520  INPUT FI$(CO):CX = CO:X$ =  MID$ (FI$(CO),18,3): IF X$ = "AWP"  AND  MID$ (FI$(CO),2,7) = "MACROS."  AND  MID$ (FI$(CO),26,3) <" 28"  THEN CO = CO +1
  59. 9530  IF  LEFT$(FI$(CX),12) < >"BLOCKS FREE:"  THEN 9520
  60. 9540 BF$ =  MID$ (FI$(CX),13,5):BF =  VAL(BF$):CO = CO -1: PRINT D$"CLOSE"
  61. 9550  FOR I = 1 TO CO:FI$(I) =  MID$ (FI$(I),2,15) + MID$ (FI$(I),17,5) + MID$ (FI$(I),25,15): NEXT : IF CO = 0  THEN  RETURN 
  62. 9580  VTAB 1: POKE C8,56: PRINT "    Escape: Load Source";: CALL CL: VTAB 23: PRINT : PRINT "Use arrow keys to highlight file, then press Return";: CALL CS
  63. 9590  VTAB 9: PRINT : HTAB 16: PRINT "Disk Volume "PFX$" has "BF" blocks available"
  64. 9600  HTAB 17: PRINT "Name           Type Blocks   Date": HTAB 16: & RPT,189,37
  65. 9610  & SHOW,FI$(1),CO,6,15,13,27:X =  PEEK(0): IF X = 27  THEN  RETURN 
  66. 9660 NA$ =  LEFT$(FI$(X),15): RETURN 
  67. 9800  POKE 1014,A1: POKE 1015,A2: CALL 48888: POKE SD,AS: POKE SD +1,AD: PRINT D$"PREFIX/": IF OP$ < >"/"  THEN  PRINT D$"PREFIX"OP$
  68. 9805  RETURN 
  69. 9900 I2 = I: & BOX,M$(I),10,7,11: RETURN 
  70. 9925  POKE C8,59: PRINT "   Escape:"B$(XX)
  71. 9950  VTAB 23: PRINT : PRINT "Type number or use arrow keys, then press Return           See Manual for Help";: RETURN 
  72. 9975  VTAB 23: PRINT : PRINT "Use up/down arrow keys to change value; press Return when done";: CALL CL: RETURN 
  73. 10000 ER =  PEEK(222):EL =  PEEK(218) +256 * PEEK(219): CALL 7808
  74. 10005  IF ER = 12  OR ER = 77  THEN  HOME : PRINT "<CTRL-G>INSUFFICIENT MEMORY; PLEASE REBOOT": END 
  75. 10010  IF EL = 20  THEN  PRINT "MENUS";: GOTO 12000
  76. 10030  IF EL = 30  THEN  PRINT "COMPILER.CODE";: GOTO 12000
  77. 10070  IF EL = 6540  THEN  & BEEP: VTAB 23: PRINT : PRINT UN$"load "NA$"; press Return";: CALL CL: & KEY,14 +( LEN(NA$)/2),24: GOTO 6500
  78. 10072  IF EL = 6715  THEN  VTAB 23: PRINT : PRINT "MACRO.SYSTEM not found; press a key ";: CALL CL: & KEY,19,24: GOTO 6710
  79. 10075  IF EL = 6720  THEN  VTAB 23: PRINT : PRINT UN$"save MACRO.SYSTEM";: CALL CL: & KEY,14,24: GOTO 6688
  80. 10110  IF EL = 9170  OR EL = 9180  OR EL = 9510  THEN  & BEEP: VTAB 23: PRINT : PRINT "Unable to find directory; press Return";: CALL CL: & KEY,20,24:PF$ = Y$: GOTO 9000
  81. 10115  IF EL = 9800  THEN  GOSUB 13000: GET X$: GOTO 60
  82. 10120  POKE 216,0: RESUME 
  83. 12000  PRINT " must be on the disk<CTRL-G>": END 
  84. 13000  VTAB 23: PRINT : PRINT "Insert the MacroWorks disk; press a key ";: CALL CL: RETURN 
  85. 15000  DATA  "Compile Macros","Quit" : REM  A
  86. 15200  DATA  "Compiler Menu","Read Directory","Compile Macros" : REM  M
  87. 15300  DATA  "Current Directory:","Slot 6 Drive 1","Another Slot and Drive","Another Pathname": REM  D